Function类型.
首先记住一句话:函数是对象,函数名是指针。
1:

function sum (num1, num2) {
        return num1 + num2;
}

2:

var sum = function(num1, num2){
        return num1 + num2;
};

3:

var sum = new Function("num1", "num2", "return num1 + num2"); // 不推荐
上面这三种写法意义一样。一是函数声明语法定义函数,二是函数表达式定义函数,

三是使用Function的构造函数定义函数,其中3,最后一个参数始终被看做函数体。

使用不带圆括号的函数名是访问函数指针,不是调用函数

没有重载,定义两个相同名字的函数,结果就是第二个会覆盖第一个。

函数声明和函数表达式的区别
解析器会率先读取函数声明,并使其在执行 9 任何代码之前可用(可以访问);
至于函数表达式,则必须等到解析器执行到它所在的代码行,才会真正被解释执行
正确:

alert(sum(10,10));
function sum(num1, num2){
    return num1 + num2;
}

错误:

alert(sum(10,10));
var sum = function(num1, num2){
    return num1 + num2;
};

作为值的函数
可以像传递参数一样把一个函数传递给另一个函数,
也可以将一个函数作为另一个函数的结果返回。

 function callSomeFunction(someFunction, someArgument){
        return someFunction(someArgument);
}

调用

function add10(num){
        return num + 10;
}

var result1 = callSomeFunction(add10, 10);
alert(result1);   //20

zorro
52 声望2 粉丝